
// <copyright file="IDbDataSource.cs" company="Subhadra Software Solutions">
//   
// </copyright>
// <summary>
//   This interface defines a contract that who ever implements this interface acts as a DbDataSource.
//   It means the implemented class accepts an empty a dataTransferObject with the Key _properties set and populates the rest of the
//   _properties from the data source which is a database.
// </summary>

namespace SubhadraSolutions.Sharp.Utils.Data
{
    /// <summary>
    /// This interface defines a contract that who ever implements this interface acts as a DbDataSource.
    ///     It means the implemented class accepts an empty a dataTransferObject with the Key _properties set and populates the rest of the
    ///     _properties from the data source which is a database.
    /// </summary>
    /// <typeparam name="T">
    /// </typeparam>
    public interface IDbDataSource<in T> : IDataSource<T>
    {
        #region Public Methods and Operators

        /// <summary>
        /// Sets the database transaction context.
        /// </summary>
        /// <param name="context">
        /// The context.
        /// </param>
        void SetDbTransactionContext(DbTransactionContext context);

        #endregion Public Methods and Operators
    }
}